﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;

namespace Ingenious.Owl.Linq.CodeDom
{
    public static class Resolver
    {

        // Scan all assemblies for LinqToOwl attributes and index
        private static void IndexReferences()
        {
        }

        public static object Dereference(string objectUri)
        {
            return null;
        }

        public static object Dereference(Uri objectUri)
        {
            return null;
        }

        public static object DereferencePredicate(Expression propertyLambda)
        {
            return null;
        }
    }

    [Subject("http://www.linkeddatatools.com/example#mysubject")]
    [Type("http://www.linkeddatatools.com/exampletype")]
    public class MyExample
    {
        [Predicate("http://www.linkeddatatools.com/example#myobjectpredicate")]
        public object MyObjectProperty
        {
            get { return Resolver.Dereference("http://www.linkeddatatools.com/example#mysubject2"); }
        }

        [Predicate("http://www.linkeddatatools.com/example#myliteralpredicate")]
        public string MyLiteralProperty
        {
            get { return "Hello"; }
        }
    }
}
